/*******************************************************************************
 *
 * Copyright (c) 2004-2008 by Vivante Corp.  All rights reserved.
 *
 * The material in this file is confidential and contains trade secrets of
 * Vivante Corporation.  This is proprietary information owned by Vivante
 * Corporation.  No part of this work may be disclosed, reproduced, copied,
 * transmitted, or used in any way for any purpose, without the express
 * written permission of Vivante Corporation.
 *
 ******************************************************************************/

/*******************************************************************************
 *
 * This file is automatically generated on Mon Apr 13 01:22:32 2009
 *
 * Any changes made to this file are lost at the next compile run!
 * So better make sure you update the source .r files instead!
 *
 ******************************************************************************/

////////////////////////////////////////////////////////////////////////////////
//                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                      //
//                      Module PowerManagementController                      //
//                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                      //
////////////////////////////////////////////////////////////////////////////////

// Register gcModulePowerControls.
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

// Control register for module level power controls.

#define gcModulePowerControlsRegAddrs                                     0x0040
#define GC_MODULE_POWER_CONTROLS_Address                                 0x00100
#define GC_MODULE_POWER_CONTROLS_MSB                                          15
#define GC_MODULE_POWER_CONTROLS_LSB                                           0
#define GC_MODULE_POWER_CONTROLS_Count                                         1
#define GC_MODULE_POWER_CONTROLS_FieldMask                            0xFFFF00F7
#define GC_MODULE_POWER_CONTROLS_ReadMask                             0xFFFF00F7
#define GC_MODULE_POWER_CONTROLS_WriteMask                            0xFFFF00F7
#define GC_MODULE_POWER_CONTROLS_ResetValue                           0x00140020

// Enables module level clock gating.
#define GC_MODULE_POWER_CONTROLS_ENABLE_MODULE_CLOCK_GATING                  0:0
#define GC_MODULE_POWER_CONTROLS_ENABLE_MODULE_CLOCK_GATING_End                0
#define GC_MODULE_POWER_CONTROLS_ENABLE_MODULE_CLOCK_GATING_Start              0

// Disables module level clock gating for stall condition.
#define GC_MODULE_POWER_CONTROLS_DISABLE_STALL_MODULE_CLOCK_GATING           1:1
#define GC_MODULE_POWER_CONTROLS_DISABLE_STALL_MODULE_CLOCK_GATING_End         1
#define GC_MODULE_POWER_CONTROLS_DISABLE_STALL_MODULE_CLOCK_GATING_Start       1

// Disables module level clock gating for starve/idle condition.
#define GC_MODULE_POWER_CONTROLS_DISABLE_STARVE_MODULE_CLOCK_GATING          2:2
#define GC_MODULE_POWER_CONTROLS_DISABLE_STARVE_MODULE_CLOCK_GATING_End        2
#define GC_MODULE_POWER_CONTROLS_DISABLE_STARVE_MODULE_CLOCK_GATING_Start      2

// Number of clock cycles to wait after turning on the clock.
#define GC_MODULE_POWER_CONTROLS_TURN_ON_COUNTER                             7:4
#define GC_MODULE_POWER_CONTROLS_TURN_ON_COUNTER_End                           7
#define GC_MODULE_POWER_CONTROLS_TURN_ON_COUNTER_Start                         4

// Counter value for clock gating the module if the module is idle for 
// this amount of clock cycles.
#define GC_MODULE_POWER_CONTROLS_TURN_OFF_COUNTER                          31:16
#define GC_MODULE_POWER_CONTROLS_TURN_OFF_COUNTER_End                         31
#define GC_MODULE_POWER_CONTROLS_TURN_OFF_COUNTER_Start                       16

// Register gcModulePowerModuleControl.
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

// Module level control registers.

#define gcModulePowerModuleControlRegAddrs                                0x0041
#define GC_MODULE_POWER_MODULE_CONTROL_Address                           0x00104
#define GC_MODULE_POWER_MODULE_CONTROL_MSB                                    15
#define GC_MODULE_POWER_MODULE_CONTROL_LSB                                     0
#define GC_MODULE_POWER_MODULE_CONTROL_Count                                   1
#define GC_MODULE_POWER_MODULE_CONTROL_FieldMask                      0x000000FF
#define GC_MODULE_POWER_MODULE_CONTROL_ReadMask                       0x000000FF
#define GC_MODULE_POWER_MODULE_CONTROL_WriteMask                      0x000000FF
#define GC_MODULE_POWER_MODULE_CONTROL_ResetValue                     0x00000000

// Disables module level clock gating for FE.
#define GC_MODULE_POWER_MODULE_CONTROL_DISABLE_MODULE_CLOCK_GATING_FE        0:0
#define GC_MODULE_POWER_MODULE_CONTROL_DISABLE_MODULE_CLOCK_GATING_FE_End      0
#define GC_MODULE_POWER_MODULE_CONTROL_DISABLE_MODULE_CLOCK_GATING_FE_Start    0

// Disables module level clock gating for DE.
#define GC_MODULE_POWER_MODULE_CONTROL_DISABLE_MODULE_CLOCK_GATING_DE        1:1
#define GC_MODULE_POWER_MODULE_CONTROL_DISABLE_MODULE_CLOCK_GATING_DE_End      1
#define GC_MODULE_POWER_MODULE_CONTROL_DISABLE_MODULE_CLOCK_GATING_DE_Start    1

// Disables module level clock gating for PE.
#define GC_MODULE_POWER_MODULE_CONTROL_DISABLE_MODULE_CLOCK_GATING_PE        2:2
#define GC_MODULE_POWER_MODULE_CONTROL_DISABLE_MODULE_CLOCK_GATING_PE_End      2
#define GC_MODULE_POWER_MODULE_CONTROL_DISABLE_MODULE_CLOCK_GATING_PE_Start    2

// Disables module level clock gating for SH.
#define GC_MODULE_POWER_MODULE_CONTROL_DISABLE_MODULE_CLOCK_GATING_SH        3:3
#define GC_MODULE_POWER_MODULE_CONTROL_DISABLE_MODULE_CLOCK_GATING_SH_End      3
#define GC_MODULE_POWER_MODULE_CONTROL_DISABLE_MODULE_CLOCK_GATING_SH_Start    3

// Disables module level clock gating for PA.
#define GC_MODULE_POWER_MODULE_CONTROL_DISABLE_MODULE_CLOCK_GATING_PA        4:4
#define GC_MODULE_POWER_MODULE_CONTROL_DISABLE_MODULE_CLOCK_GATING_PA_End      4
#define GC_MODULE_POWER_MODULE_CONTROL_DISABLE_MODULE_CLOCK_GATING_PA_Start    4

// Disables module level clock gating for SE.
#define GC_MODULE_POWER_MODULE_CONTROL_DISABLE_MODULE_CLOCK_GATING_SE        5:5
#define GC_MODULE_POWER_MODULE_CONTROL_DISABLE_MODULE_CLOCK_GATING_SE_End      5
#define GC_MODULE_POWER_MODULE_CONTROL_DISABLE_MODULE_CLOCK_GATING_SE_Start    5

// Disables module level clock gating for RA.
#define GC_MODULE_POWER_MODULE_CONTROL_DISABLE_MODULE_CLOCK_GATING_RA        6:6
#define GC_MODULE_POWER_MODULE_CONTROL_DISABLE_MODULE_CLOCK_GATING_RA_End      6
#define GC_MODULE_POWER_MODULE_CONTROL_DISABLE_MODULE_CLOCK_GATING_RA_Start    6

// Disables module level clock gating for TX.
#define GC_MODULE_POWER_MODULE_CONTROL_DISABLE_MODULE_CLOCK_GATING_TX        7:7
#define GC_MODULE_POWER_MODULE_CONTROL_DISABLE_MODULE_CLOCK_GATING_TX_End      7
#define GC_MODULE_POWER_MODULE_CONTROL_DISABLE_MODULE_CLOCK_GATING_TX_Start    7

// Register gcModulePowerModuleStatus.
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

// Module level control status.

#define gcModulePowerModuleStatusRegAddrs                                 0x0042
#define GC_MODULE_POWER_MODULE_STATUS_Address                            0x00108
#define GC_MODULE_POWER_MODULE_STATUS_MSB                                     15
#define GC_MODULE_POWER_MODULE_STATUS_LSB                                      0
#define GC_MODULE_POWER_MODULE_STATUS_Count                                    1
#define GC_MODULE_POWER_MODULE_STATUS_FieldMask                       0x000000FF
#define GC_MODULE_POWER_MODULE_STATUS_ReadMask                        0x000000FF
#define GC_MODULE_POWER_MODULE_STATUS_WriteMask                       0x000000FF
#define GC_MODULE_POWER_MODULE_STATUS_ResetValue                      0x00000000

// Module level clock gating is ON for FE.
#define GC_MODULE_POWER_MODULE_STATUS_MODULE_CLOCK_GATED_FE                  0:0
#define GC_MODULE_POWER_MODULE_STATUS_MODULE_CLOCK_GATED_FE_End                0
#define GC_MODULE_POWER_MODULE_STATUS_MODULE_CLOCK_GATED_FE_Start              0

// Module level clock gating is ON for DE.
#define GC_MODULE_POWER_MODULE_STATUS_MODULE_CLOCK_GATED_DE                  1:1
#define GC_MODULE_POWER_MODULE_STATUS_MODULE_CLOCK_GATED_DE_End                1
#define GC_MODULE_POWER_MODULE_STATUS_MODULE_CLOCK_GATED_DE_Start              1

// Module level clock gating is ON for PE.
#define GC_MODULE_POWER_MODULE_STATUS_MODULE_CLOCK_GATED_PE                  2:2
#define GC_MODULE_POWER_MODULE_STATUS_MODULE_CLOCK_GATED_PE_End                2
#define GC_MODULE_POWER_MODULE_STATUS_MODULE_CLOCK_GATED_PE_Start              2

// Module level clock gating is ON for SH.
#define GC_MODULE_POWER_MODULE_STATUS_MODULE_CLOCK_GATED_SH                  3:3
#define GC_MODULE_POWER_MODULE_STATUS_MODULE_CLOCK_GATED_SH_End                3
#define GC_MODULE_POWER_MODULE_STATUS_MODULE_CLOCK_GATED_SH_Start              3

// Module level clock gating is ON for PA.
#define GC_MODULE_POWER_MODULE_STATUS_MODULE_CLOCK_GATED_PA                  4:4
#define GC_MODULE_POWER_MODULE_STATUS_MODULE_CLOCK_GATED_PA_End                4
#define GC_MODULE_POWER_MODULE_STATUS_MODULE_CLOCK_GATED_PA_Start              4

// Module level clock gating is ON for SE.
#define GC_MODULE_POWER_MODULE_STATUS_MODULE_CLOCK_GATED_SE                  5:5
#define GC_MODULE_POWER_MODULE_STATUS_MODULE_CLOCK_GATED_SE_End                5
#define GC_MODULE_POWER_MODULE_STATUS_MODULE_CLOCK_GATED_SE_Start              5

// Module level clock gating is ON for RA.
#define GC_MODULE_POWER_MODULE_STATUS_MODULE_CLOCK_GATED_RA                  6:6
#define GC_MODULE_POWER_MODULE_STATUS_MODULE_CLOCK_GATED_RA_End                6
#define GC_MODULE_POWER_MODULE_STATUS_MODULE_CLOCK_GATED_RA_Start              6

// Module level clock gating is ON for TX.
#define GC_MODULE_POWER_MODULE_STATUS_MODULE_CLOCK_GATED_TX                  7:7
#define GC_MODULE_POWER_MODULE_STATUS_MODULE_CLOCK_GATED_TX_End                7
#define GC_MODULE_POWER_MODULE_STATUS_MODULE_CLOCK_GATED_TX_Start              7

